package com.springboot.frame.excel.annotation;

import com.springboot.frame.excel.handler.CellHandler;
import org.apache.poi.ss.usermodel.*;
import java.lang.annotation.*;

/**
 * @author madman
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface ExcelAttribute {

  /**
   * 该列表头名称
   */
  String value();

  /**
   * 该列的处理器，默认从全局配置中获取当前处理器
   */
  Class<? extends CellHandler> typeHandler() default CellHandler.class;

  /**
   * 该列时间格式，默认yyyy-MM-dd
   */
  String dateFormat() default "yyyy-MM-dd";

  /**
   * 该列数据精度，默认小数点后2位
   */
  int precision() default 2;

  /**
   * 该列表头宽度，默认10
   */
  int width() default 10;

  /**
   * 该列相同内容是否需要合并
   */
  boolean needMerge() default false;

  /**
   * 该列字体名，默认宋体
   */
  String fontName() default "宋体";

  /**
   * 该列字体大小，默认false
   */
  short fontSize() default 10;

  /**
   * 该列字体是否加粗，默认false
   */
  boolean fontBold() default false;

  /**
   * 该列字体是否倾斜，默认false
   */
  boolean fontItalic() default false;

  /**
   * 该列字体是否有删除线，默认false
   */
  boolean fontStrikeout() default false;

  /**
   * 该列字体是否有下划线，默认false
   */
  boolean fontUnderLine() default false;

  /**
   * 字体颜色，默认黑色
   */
  IndexedColors fontColor() default IndexedColors.BLACK;

  /**
   * 该列数据是否自动换行，默认false
   */
  boolean wrapText() default false;

  /**
   * 该列单元格水平样式，默认水平居中
   */
  HorizontalAlignment horizontal() default HorizontalAlignment.CENTER;

  /**
   * 该列单元格水平样式，默认垂直居中
   */
  VerticalAlignment vertical() default VerticalAlignment.CENTER;

  /**
   * 该列单元格背景颜色，默认白色
   */
  IndexedColors fillColor() default IndexedColors.WHITE;

  /**
   * 该列单元格颜色填充方式，默认全部填充
   */
  FillPatternType fillPatternType() default FillPatternType.SOLID_FOREGROUND;

  /**
   * 该列单元格四周边框样式，默认THIN
   */
  BorderStyle borderStyle() default BorderStyle.THIN;

}
